package com.canaan.business.service.storehouse;

import com.canaan.business.domain.storehouse.StockFreeze;

import java.util.List;

/**
 * 库存冻结Service接口
 *
 * @author ruoyi
 * @date 2023-02-08
 */
public interface IStockFreezeService {
    /**
     * 查询库存冻结
     *
     * @param id 库存冻结主键
     * @return 库存冻结
     */
    StockFreeze selectStockFreezeById(Long id);

    /**
     * 查询库存冻结列表
     *
     * @param stockFreeze 库存冻结
     * @return 库存冻结集合
     */
    List<StockFreeze> selectStockFreezeList(StockFreeze stockFreeze);

    /**
     * 新增库存冻结
     *
     * @param stockFreeze 库存冻结
     * @return 结果
     */
    String insertStockFreeze(StockFreeze stockFreeze);

    /**
     * 批量新增库存冻结
     *
     * @param stockFreezeList 库存冻结列表
     * @return 结果
     */
    int batchInsertStockFreeze(List<StockFreeze> stockFreezeList);

    /**
     * 修改库存冻结
     *
     * @param stockFreeze 库存冻结
     * @return 结果
     */
    int updateStockFreeze(StockFreeze stockFreeze);

    /**
     * 批量修改库存冻结
     *
     * @param stockFreezeList 库存冻结列表
     * @return 结果
     */
    int batchUpdateStockFreeze(List<StockFreeze> stockFreezeList);

    /**
     * 批量删除库存冻结
     *
     * @param ids 需要删除的库存冻结主键集合
     * @return 结果
     */
    int deleteStockFreezeByIds(Long[] ids);

    /**
     * 删除库存冻结信息
     *
     * @param id 库存冻结主键
     * @return 结果
     */
    int deleteStockFreezeById(Long id);

    List<String> importExcel(List<StockFreeze> list);

    /**
     * 激活库存冻结并且占用
     *
     * @param id 库存冻结
     * @return 结果
     */
    int activationStockFreezeAndOccupy(Long id);

    /**
     * 取消库存冻结并且删除占用
     *
     * @param id 库存冻结
     * @return 结果
     */
    int removeActivationStockFreezeAndOccupy(Long id);

}
